package com.ccp.dev.workflow.dao;

import com.ccp.dev.core.basic.base.IBaseMapper;
import com.ccp.dev.workflow.bpminterface.IActDefMapper;
import com.ccp.dev.workflow.model.BpmProStatus;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * ClassDescribe:流程节点状态 Dao
 *
 * @author :jiayueqiao
 * Date: 2019-07-31
 * Since:1
 */
public interface BpmProStatusDao extends IBaseMapper<BpmProStatus, String>, IActDefMapper {

    /**
     * 更新状态
     *
     * @param params
     * @return
     */
    int updStatus(Map<String, Object> params);

    /**
     * 根据实例id和nodeId获取流程节点状态
     *
     * @param procInstId 实例id
     * @param nodeId     节点id
     * @return
     */
    BpmProStatus getByInstNodeId(@Param("procInstId") String procInstId, @Param("nodeId") String nodeId);

    /**
     * 描述:  根据流程实例删除数据
     *
     * @param procInstId
     * @author wzh
     * @version 1.0
     * @since 2013年11月21日 下午2:24:26
     */
    void delByProcInstId(String procInstId);

    /**
     * 根据流程实例id和节点id删除节点执行状态
     * @param procInstId 流程实例id
     * @param nodeId 节点id
     */
    void delByProcInstIdAndNodeId(@Param("procInstId") String procInstId,@Param("nodeId") String nodeId);

    /**
     * 根据流程实例id获取节点状态
     * @param procInstId 流程实例id
     * @return 节点状态列表
     */
    List<BpmProStatus> queryByProcInstanceId(String procInstId);
}
